package com.ssm.zy.mapper;

import com.ssm.zy.pojo.Post;
import com.ssm.zy.pojo.vo.PostVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface PostMapper {
    //查找帖子并按需排序
    List<PostVo> check(@Param("sort") Integer sort, @Param("labelId") Integer labelId,
                       @Param("likeName") String likeName);
    //查找此用户的帖子
    List<PostVo> getcheckUserPost(@Param("userId") int userId);
    //查找此用户收藏的帖子
    List<PostVo> getcheckUserCollectPost(@Param("id") int id);
    //查找此用户点赞的帖子
    List<PostVo> getcheckUserPraisePost(@Param("id") int id);
    //查找出所有点赞这个帖子的人的id
    List<Integer> getPraiseOfUser(@Param("postId") int postId);
    //查找出所有收藏这个帖子的人的id
    List<Integer> getCollectOfUser(@Param("postId") int postId);
    //查找出所有点赞这个评论的人的id
    List<Integer> getPraiseOfUserComment(@Param("commentId") int commentId);
    //浏览量+1
    int addPostView(@Param("postId") int postId);
    //上传帖子
    int addPost(PostVo postVo);
    //添加标签
    int addPostLabel(@Param("postId") int postId,@Param("labelList") List<Integer> labelList);
    //审核通过
    int trueExaminePost(@Param("postId") Integer postId, @Param("examineTime") Date date);
     //审核不通过
    int falseExaminePost(@Param("postId") Integer postId, @Param("examineTime") Date date);
    //删除帖子
    int deletePost(@Param("postId") Integer postId);
    //举报帖子
    int reportPost(Integer postId);
    //帖子点赞关联表添加
    int addpraisePost(@Param("userId") Integer userId,@Param("postId") Integer postId);
    //帖子表点赞量加一
    int updateAddPostpraise(@Param("postId") Integer postId);
    //帖子点赞关联表删除
    int delpraisePost(@Param("userId") Integer userId,@Param("postId") Integer postId);
    //帖子表点赞量减一
    int updateDelPostpraise(@Param("postId") Integer postId);
    //收藏关联表添加
    int addpostCollect(@Param("userId") Integer userId,@Param("postId") Integer postId);
    //帖子表收藏量加一
    int updateAddpostCollect(@Param("postId") Integer postId);
    //收藏关联表删除
    int delpostCollect(@Param("userId") Integer userId,@Param("postId") Integer postId);
    //帖子表收藏量减一
    int updateDelpostCollect(@Param("postId") Integer postId);
    //修改帖子
    int updateUserPost(PostVo postVo);
    //删除标签联表
    int delUserPostLabel(@Param("postId") int postId);
    //查看需要审核的帖子
    List<PostVo> checkExamine();
    //  查找所有帖子
    List<PostVo> findAllPost();
    //查找这个人的帖子
    List<PostVo> toCheckUserPost(Integer userId);
}
